package PanelesSeleccion;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.table.DefaultTableModel;

public class CreaModelTable {

	public DefaultTableModel DefinirModeloEmpleado(String Nombre, String Rut) throws SQLException{
		//creamos la conexion y consultamos
		Connection conn = null;
		conexion.EstablecerConexion conectar = new conexion.EstablecerConexion();
		conn = conectar.iniciar();
		Statement statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
		ResultSet resultSet = null;
		
		if(Nombre.equalsIgnoreCase("") || Rut.equalsIgnoreCase("")){
			resultSet = statement.executeQuery("select nombre1, nombre2, apellido1, apellido2, rut  from empleado");
		}
		
		if(!Nombre.equalsIgnoreCase("")){
			Nombre = Nombre + "%";
			resultSet = statement.executeQuery("select nombre1, nombre2, apellido1, apellido2, rut  from empleado where "
				+ "nombre1 LIKE '"+Nombre+"'");
		}
		
		if(!Rut.equalsIgnoreCase("")){
			Rut = Rut + "%";
			resultSet = statement.executeQuery("select nombre1, nombre2, apellido1, apellido2, rut  from empleado where "
					+ "rut LIKE '"+Rut+"'");
		}
		
		DefaultTableModel modelo = new DefaultTableModel();
		if(resultSet.next()){ //Hay algun resultado?
			
			resultSet.beforeFirst();  //regresamos al primer valor.
        	//Obtenemos informacion del resultado de la consulta.
	        ResultSetMetaData metaDatosRs = resultSet.getMetaData();
	        
	        //cantidad columnas
	        int cantidadColumnas = metaDatosRs.getColumnCount();
	    	
	        //nombres columnas
	    	for (int i = 1; i >= cantidadColumnas; i++) {
	    		modelo.addColumn(metaDatosRs.getColumnLabel(i));
	    	}
	    	
	    	//Establecer como cabezeras el nombre de las columnas
	    	for (int i = 1; i <= cantidadColumnas; i++) {
	    		modelo.addColumn(metaDatosRs.getColumnLabel(i));
	    	}
	    	
	    	//Creando las filas para el JTable
	    	 while (resultSet.next()) {
	    	  Object[] fila = new Object[cantidadColumnas];
	    	  for (int i = 0; i < cantidadColumnas; i++) {
	    	    fila[i]=resultSet.getObject(i+1);
	    	  }
	    	  modelo.addRow(fila);
	    	 }
	    	 
		}
		return modelo;
	}
	
	
	public DefaultTableModel DefinirModeloCliente(String Nombre, String Rut) throws SQLException{
		//creamos la conexion y consultamos
		Connection conn = null;
		conexion.EstablecerConexion conectar = new conexion.EstablecerConexion();
		conn = conectar.iniciar();
		Statement statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
		ResultSet resultSet = null;
		
		if(Nombre.equalsIgnoreCase("") || Rut.equalsIgnoreCase("")){
			resultSet = statement.executeQuery("select nombre, direccion, rut  from cliente");
		}
		
		if(!Nombre.equalsIgnoreCase("")){
			Nombre = Nombre + "%";
			resultSet = statement.executeQuery("select nombre, direccion, rut  from cliente where  "
				+ "nombre LIKE '"+Nombre+"'");
		}
		
		if(!Rut.equalsIgnoreCase("")){
			Rut = Rut + "%";
			resultSet = statement.executeQuery("select nombre, direccion, rut  from cliente where "
					+ "rut LIKE '"+Rut+"'");
		}
		
		DefaultTableModel modelo = new DefaultTableModel();
		if(resultSet.next()){ //Hay algun resultado?
			
			resultSet.beforeFirst();  //regresamos al primer valor.
        	//Obtenemos informacion del resultado de la consulta.
	        ResultSetMetaData metaDatosRs = resultSet.getMetaData();
	        
	        //cantidad columnas
	        int cantidadColumnas = metaDatosRs.getColumnCount();
	    	
	        //nombres columnas
	    	for (int i = 1; i >= cantidadColumnas; i++) {
	    		modelo.addColumn(metaDatosRs.getColumnLabel(i));
	    	}
	    	
	    	//Establecer como cabezeras el nombre de las columnas
	    	for (int i = 1; i <= cantidadColumnas; i++) {
	    		modelo.addColumn(metaDatosRs.getColumnLabel(i));
	    	}
	    	
	    	//Creando las filas para el JTable
	    	 while (resultSet.next()) {
	    	  Object[] fila = new Object[cantidadColumnas];
	    	  for (int i = 0; i < cantidadColumnas; i++) {
	    	    fila[i]=resultSet.getObject(i+1);
	    	  }
	    	  modelo.addRow(fila);
	    	 }
	    	 
		}
		return modelo;
	}
	
	
	public DefaultTableModel DefinirModeloPeticion() throws SQLException{
		//creamos la conexion y consultamos
		Connection conn = null;
		conexion.EstablecerConexion conectar = new conexion.EstablecerConexion();
		conn = conectar.iniciar();
		Statement statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
		ResultSet resultSet = null;
		
		resultSet = statement.executeQuery("select id, rut_cliente, obra, fecha, estado from peticiones where estado = 'PROCESO' "
				+ "UNION "
				+ "select id, rut_cliente, obra, fecha, estado from peticiones where estado = 'ESPERA'");
		
		DefaultTableModel modelo = new DefaultTableModel();
		if(resultSet.next()){ //Hay algun resultado?
			
			resultSet.beforeFirst();  //regresamos al primer valor.
        	//Obtenemos informacion del resultado de la consulta.
	        ResultSetMetaData metaDatosRs = resultSet.getMetaData();
	        
	        //cantidad columnas
	        int cantidadColumnas = metaDatosRs.getColumnCount();
	    	
	        //nombres columnas
	    	for (int i = 1; i >= cantidadColumnas; i++) {
	    		modelo.addColumn(metaDatosRs.getColumnLabel(i));
	    	}
	    	
	    	//Establecer como cabezeras el nombre de las columnas
	    	for (int i = 1; i <= cantidadColumnas; i++) {
	    		modelo.addColumn(metaDatosRs.getColumnLabel(i));
	    	}
	    	
	    	//Creando las filas para el JTable
	    	 while (resultSet.next()) {
	    	  Object[] fila = new Object[cantidadColumnas];
	    	  for (int i = 0; i < cantidadColumnas; i++) {
	    	    fila[i]=resultSet.getObject(i+1);
	    	  }
	    	  modelo.addRow(fila);
	    	 }
	    	 
		}
		return modelo;
	}
	
	
	public DefaultTableModel DefinirModeloPatente() throws SQLException{
		//creamos la conexion y consultamos
		Connection conn = null;
		conexion.EstablecerConexion conectar = new conexion.EstablecerConexion();
		conn = conectar.iniciar();
		Statement statement = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
		ResultSet resultSet = null;
		
		resultSet = statement.executeQuery("select patente, tipo_maquina, marca, modelo from maquinaria");
		
		DefaultTableModel modelo = new DefaultTableModel();
		if(resultSet.next()){ //Hay algun resultado?
			
			resultSet.beforeFirst();  //regresamos al primer valor.
        	//Obtenemos informacion del resultado de la consulta.
	        ResultSetMetaData metaDatosRs = resultSet.getMetaData();
	        
	        //cantidad columnas
	        int cantidadColumnas = metaDatosRs.getColumnCount();
	    	
	        //nombres columnas
	    	for (int i = 1; i >= cantidadColumnas; i++) {
	    		modelo.addColumn(metaDatosRs.getColumnLabel(i));
	    	}
	    	
	    	//Establecer como cabezeras el nombre de las columnas
	    	for (int i = 1; i <= cantidadColumnas; i++) {
	    		modelo.addColumn(metaDatosRs.getColumnLabel(i));
	    	}
	    	
	    	//Creando las filas para el JTable
	    	 while (resultSet.next()) {
	    	  Object[] fila = new Object[cantidadColumnas];
	    	  for (int i = 0; i < cantidadColumnas; i++) {
	    	    fila[i]=resultSet.getObject(i+1);
	    	  }
	    	  modelo.addRow(fila);
	    	 }
	    	 
		}
		return modelo;
	}
}
